Due to the nature of video encoding on DVD discs and other MPEG-2 and similar data streams, providing smooth reverse action in order to play a video stream backwards in real time (or at high speed, slow motion, or the like) is often difficult.
Three types of pictures (sometimes referred to as “frames”) are defined in the MPEG (Moving Pictures Experts Group) standards: intra (I) pictures, predicted (P) pictures, and bi-directionally interpolated (B) pictures. I pictures provide access points for random access, but only with a moderate compression. P pictures are coded with reference to a previous picture, in which the previous picture can be either I picture or P picture. B pictures may be compressed with a low bit rate, using both previous and future references. The B pictures are never used as the references. The relationship between the three picture types is illustrated in FIG. 9. The MPEG standard does not impose any limit to the number of B pictures between the two references, or the number of pictures between two I pictures.
FIG. 11 is a diagram illustrating the relationship between Video Object Units (VOBUs) 710, Groups of Pictures (GOPs) 720, and individual frames or pictures of video data 730. As illustrated in FIG. 11, the sequence of pictures starting with an I picture up to the last picture before the next I picture is referred to a Group of Pictures (GOP). A GOP is the smallest unit of data that can be independently accessed. The sequence of pictures in the coded stream is such that the coded reference pictures are always placed ahead of the coded pictures that use the reference pictures. For example, if the sequence of pictures in the coded stream is IPBB, the display sequence will be IBBP. This type of data compression may generally be referred to as temporal compression since this compression exploits the temporal redundancies in addition to spatial redundancies in the data. However, such a compression scheme requires that the data be decoded in the same order it is encoded.
Thus, if a user wishes to see the pictures displayed in reverse order, so as to back up to a particular section, the process becomes much more difficult. A brute force approach for rendering  video frames of data in reverse order requires that the frames first be constructed by decoding a GOP in a forward order, and then be displayed in reverse order (since the data has to be decoded in the same order that it was stored). Buffering multiple video frames of data to accomplish this task requires an inordinate amount of buffer space and a significant amount of processor overhead.
As a result, most consumer DVD players provide only limited frame display in reverse order. Since an I picture is the only type that contains all data for a complete image, without reference to data from other pictures, most consumer DVD players, when set to reverse mode, will play only successive I pictures in reverse order. As a result, the consumer sees a stilted “stop action” type of image, rather than a smooth reverse image. Since the number of I pictures is only a fraction of the overall number of pictures, reverse playback on most machines is usually at a rate of, for example, 4×, 8×, 16×, or 32× of normal speed, making it difficult for a user to stop at a particular part of a video program.
A smooth playback of the video stream in reverse order is desirable for a number of reasons. Such a feature would allow the consumer to reverse play the DVD images to a particular frame or section and would also provide a better reverse display, which is less disorienting than the flashing “stop action” types of displays presently used. In addition, the ability to play video in a reverse and forward direction smoothly better emulates the actions of tape players and other video equipment, making the use of MPEG-2 encoded data more acceptable to professional video users as a data feed source as opposed to decoded data. The ability to smooth reverse images allows a user to better edit video on a frame-by-frame basis.
The term “smooth” and/or “slow” reverse refers to the ability to playback smoothly (i.e., decode and display all the pictures) of a DVD (or other) video stream in reverse. The MPEG encoded video used in DVD does not lend itself naturally to this feature since MPEG video encoding exploits temporal redundancies in the forward direction, thereby constraining the order in which pictures can be decoded.
Referring back to FIG. 11, MPEG video data is carried in a DVD video stream in the form of Video Object Units (VOBUs) 710. A VOBU 710 is the minimal unit of data that can be accessed via navigation data in a DVD system. Streams compliant to the DVD and DVD-like recording standards store video information in VOBUs 710. Each VOBU 710 typically encodes a small fixed duration of video between 0.4 to 1.0 seconds and comprises a number of MPEG-2 frames. The VOBUs are arranged linearly on a DVD or other media.
Each VOBU 710 is guaranteed to contain one or two Group Of Pictures (GOPs) 720. Each GOP 720 can contain, at most, 18 pictures in a DVD-Video stream. Pictures 730 could be either I, B, or P types. Pictures 730 within a GOP 720 have to be decoded in the order in which the data is encoded in order to produce a stream of video data.
Consider an example of two VOBUs, VOBU#N and VOBU#N+1 from a DVD video stream as illustrated in FIG. 1. The two VOBUs may contain one GOP each, and the GOP in this case may contain fourteen pictures, illustrated as I, B, and P pictures and numbered 1 through 14. FIG. 1 illustrates the situation in normal forward direction playback. FIG. 2 illustrates the situation in a smooth reverse playback system.
Referring to FIG. 2, in order to display the frames in the order shown, it may be required to decode the VOBUs more than once. The actual number of passes that might be required will depend on the number of frame buffers and the desired smooth reverse speed. For example, consider the VOBU illustrated in FIG. 2. For the sake of simplicity, the open GOP pictures (2 and 3) are ignored. With four frame buffers, a prior art system will first decode the entire VOBU and retrieve Group of Pictures 11, 12, 13 and 14. Pictures 13 and 14 can only be displayed out of these pictures since picture 10 has to be presented before picture 11 and 12. Therefore, the prior art system will make a second pass through the VOBU and obtain pictures 9, 10, 11 and 12. Again, the prior art system can only present pictures 10, 11 and 12 out of these pictures since picture 7 has to be presented before picture 9. The prior art system makes a third pass through the VOBU to obtain pictures 6, 7, 8 and 9. The prior art system can only present pictures 7, 8 and 9 out of these pictures since picture 4 has to be presented before picture 6. The prior art system processes a fourth pass, yielding pictures 1, 4, 5 and 6.
As can be seen, a prior art smooth reverse playback engine will require a great amount of processing power. Furthermore, since the number of passes required can only be reduced by increasing the number of frame buffers, a prior art system may also require a significant amount of frame buffer memory, which is an expensive resource in an embedded system. Thus, reducing the number of passes through the VOBU that the decoder will have to make is extremely desired.
Referring again to FIG. 2, pictures 2 and 3 of either VOBU need picture 1 of the current VOBU and picture 13 of the previous VOBU in order to be decoded. Thus, pictures 2 and 3 of VOBU#N+1 need picture 1 of VOBU#N+1 and picture 13 of VOBU#N. Such GOPs may be referred to as “Open GOPs”, as they are not self-contained for decoding purposes, but rather require data from an adjacent GOP.
As illustrated in these examples, open GOPs do not require any additional buffering of the stream data when doing normal forward-direction play, since the last reference picture of a GOP would have been displayed just before starting to decode the first picture of the next GOP, thereby making the reference picture readily available to decode the open GOP pictures. However, when executing a reverse smooth play operation, the open GOP pictures 2 and 3 of VOBU#N+1 cannot be decoded until the decoder has been through VOBU#N and decoded picture 13 of VOBU#N, thereby implying that the stream buffer used by VOBU#N+1 cannot be freed even while the decoder has started to work on VOBU#N. In other words, a Prior Art system needs to buffer the stream data for two entire VOBUs in order to guarantee smooth playback in reverse order.
The maximum bit-rate for DVD-Video is 9.8 Mbps. The VOBU duration is constrained to be less than or equal to one second. Therefore, the maximum size of a VOBU will be 9.8 Megabits or 1.225 Mbytes. Thus, two VOBUs of buffering are required to provide smooth reverse play in a Prior Art DVD player or other MPEG or MPEG-like data stream. Two VOBUs of buffering implies a requirement of 2.45 Mbytes of buffering space, a considerable amount on a single chip and/or in a consumer product. Thus, it would be desirable to provide smooth reverse capability with minimal buffering space.